<?php
    // php中的混合数组：综合了索引数组和关联数组的特点，意味着它里面包含索引和关联两种形式
    // 特点:
    // 1.如果添加元素的时候设置key,那么就没有索引
    // 2.如果没有设置key,那么系统自动生成索引
    // 3.下载索引和key不会互相影响。如果没有指定key,那么索引会取到之前的最大的索引下载+1
    // $arr = array(
    //     1,
    //     2,
    //     3,
    //     "name" => "jack",
    //     "age" => 20,
    //     4
    // );
    // echo '<pre>';
    // print_r($arr);
    // echo '</pre>';

    // 通过[]创建数组：
    // 1.判断当前数组是否已经存在，如果不存在则先创建，再将元素添加到数组第一个元素位置
    // 2.如果数组已经存在，那么就将当前元素添加到数组中--追加
    // $arr[] = 1;
    // $arr[] = 100;
    // $arr["name"] = "jack";
    // $arr[] = 200;
    // print_r($arr);

    // 说明与数组相关的常用函数
    // count():获取指定数组的长度
    // unset():它也可以用来删除数组中的某个成员。但是删除了数组的元素之后，并不会对数组元素的索引产生影响，元素还会保留之前的索引。意味着它只是删除了索引位置的元素，并没有动态的改变数组的长度。
    // $arr = [1,2,3,4,5];
    // print_r($arr);
    // unset($arr[2]);
    // echo '<hr>';
    // print_r($arr);

    // php中的深度数组：二维数组
    // $arr = array(
    //     1,2,3,
    //     "name" => "jack",
    //     array()
    // );

    // 描述学生对象：姓名+年龄
    $arr = array( //索引数组
        // 描述第一个学生对象的数据
        "first" => array( //关联数组--类似于js中的对象
            "name" => "jack",
            "age" => 20
        ),
        array(
            "name" => "rose",
            "age" => 18
        )
    );
    print_r($arr);
    echo '<hr>';
    foreach($arr as $key => $value){
        // 二维数组的遍历需要考虑使用嵌套循环
        foreach($value as $subkey => $subvalue){
            echo $subkey .":".$subvalue ."<br>";
        }
    }
?>